We report on work in progress on automatic procedures for proving propertiesof programs written in higher-order functional languages. Our approach encodeshigher-order programs directly as first-order SMT problems over Horn clauses.It is straight-forward to reduce Hoare-style verification of first-orderprograms into satisfiability of Horn clauses. The presence of closures offersseveral challenges: relatively complete proof systems have to account forclosures; and in practice, the effectiveness of search procedures depend onencoding strategies and capabilities of underlying solvers. We here usealgebraic data-types to encode closures and rely on solvers that supportalgebraic data-types. The viability of the approach is examined using examplesfrom the literature on higher-order program verification.
展开▼